2023/12/23546字符

反射

package main

import (
    "fmt"
    "reflect"
)

func main() {
    num := 3.4

    fmt.Println(reflect.TypeOf(num), reflect.ValueOf(num)) //--> float64 3.4

    v := reflect.ValueOf(num)
    fmt.Println(v.Kind() == reflect.Float64) //--> true

    fmt.Println(v.Type(), v.Float()) //--> float64 3.4
}
package main

import (
    "fmt"
    "reflect"
)

func main() {
    var num1 = 1.23

    var pointer = reflect.ValueOf(&num1)
    var num2 = pointer.Elem()
    fmt.Println(num2.CanSet()) //--> true

    num2.SetFloat(3.14)
    fmt.Println(num1) //--> 3.14
}